package cn.dapeng.reference;

import cn.dapeng.util.SleepingUtil;

import java.lang.ref.SoftReference;
import java.util.concurrent.TimeUnit;

/**
 * 软引用 ： 系统内存不够了 才会回收
 *
 * 运行这个程序需要设置JVM的最大内存：-Xms20M -Xmx20M
 *
 * 场景：缓存
 *
 */
public class SoftReference_T01 {

    public static void main(String[] args) {
        SoftReference<byte[]> m = new SoftReference<>(new byte[1024 * 1024 * 10]);
        //m = null;
        System.out.println(m.get());
        System.gc();

        SleepingUtil.sleep(2, TimeUnit.SECONDS);
        System.out.println(m.get());

        byte[] b = new byte[1024 * 1024 * 15];
        System.out.println(m.get());

    }
}
